package org.osll.tictactoe.transport.rmi;

import java.rmi.Remote;
import java.rmi.RemoteException;

import org.osll.tictactoe.CurrentMove;
import org.osll.tictactoe.Move;
import org.osll.tictactoe.Size;
import org.osll.tictactoe.Team;

/**
 * Interface for controlling robot, receive telemetry and general game info.
 */
public interface Control extends Remote {
	/**
	 * Получить размер поля
	 */
	public Size getSize() throws RemoteException;
	
	/**
	 * получить описание текущего хода
	 * @return описание
	 */
	public CurrentMove getMoveEndTime() throws RemoteException;
	
	
	/**
	 * сделать ход
	 * @param move
	 */
	public void makeMove(Move move) throws RemoteException;
	
	/**
	 * Получить ход противника
	 * @return ход противника
	 */
	public Move getApponentMove(Team team) throws RemoteException;	
	
	public void disconnect() throws RemoteException;
	
	public boolean isStarted() throws RemoteException;
	
	public boolean isOver() throws RemoteException;
	
	public String getApponentName(Team team) throws RemoteException;
	
	public void loginUser(String user, Team team) throws RemoteException;
}

